package com.softer.wxzj.service;

import com.github.pagehelper.PageInfo;
import com.softer.wxzj.common.entity.Page;
import com.softer.wxzj.entity.ExpPayReq;
import com.softer.wxzj.entity.RegionBank;
import com.softer.wxzj.entity.StatisticalReportForms;

import java.util.List;

/**
 * @author Niu
 * @create 2019/11/11 - 15:27 - 星期一
 * 统计报表
 */

public interface StatisticalReportFormsService {

    /**
     * 综合查询
     *
     * @param page
     * @param state
     * @return
     */
    List<StatisticalReportForms> wholeCityComprehensiveQuery( String state, String houseAttr, String houseUse);

    /**
     * 综合查询(小区名称列表)
     *
     * @param page
     * @param fuzzy
     * @return
     */
    PageInfo<StatisticalReportForms> wholeCityComprehensiveQueryRegion(Page page, String state, String fuzzy);

    /**
     * 综合查询(自然幢名称列表)
     *
     * @param page
     * @param fuzzy
     * @return
     */
    PageInfo<StatisticalReportForms> wholeCityComprehensiveQueryBuild(Page page, String regionId, String fuzzy);
    /**
     * 综合查询(自然幢名称列表)--报表打印
     *
     * @param fuzzy
     * @return
     */
    List<StatisticalReportForms> wholeCityComprehensiveQueryBuildCell(StatisticalReportForms s);

    /**
     * @param page  分页
     * @param fuzzy 模糊查询的
     * @return
     */
    PageInfo<StatisticalReportForms> depositBusinessQuery(Page page, String fuzzy, String queryModes);

    /**
     * 小区交存业务查询==》查看
     *
     * @param page
     * @param fuzzy
     * @param no    交存编号
     * @return
     */
    PageInfo<StatisticalReportForms> depositDetails(Page page, String fuzzy, String no, String buildId);

    /**
     * @param page
     * @param fuzzy
     * @return
     */
    PageInfo<StatisticalReportForms> arrearsInquiries(Page page, String fuzzy);

    /**
     * 小区欠费信息详情
     *
     * @param page
     * @param fuzzy
     * @return
     */
    PageInfo<StatisticalReportForms> arrearsInquiriesDetails(Page page, String fuzzy, String id);

    /**
     * 小区欠费信息详情
     *
     * @param fuzzy
     * @return
     */
    List<StatisticalReportForms> arrearsInquiriesDetailsCell( StatisticalReportForms s);

    /**
     * 小区业务汇总查询
     *
     * @param page
     * @param statisticalReportForms
     * @return
     */
    PageInfo<StatisticalReportForms> businessSummaryQuery(Page page, StatisticalReportForms statisticalReportForms);

    /**
     * 银行交易汇总查询
     *
     * @param page
     * @param statisticalReportForms
     * @return
     */
    PageInfo<StatisticalReportForms> bankTransactionSummaryQuery(Page page, StatisticalReportForms statisticalReportForms);

    /**
     * 小区业务明细查询
     *
     * @param page
     * @param statisticalReportForms
     * @return
     */
    PageInfo<StatisticalReportForms> businessDetailsQuery(Page page, StatisticalReportForms statisticalReportForms);

    /**
     * 小区业务明细查询  房间分组列表
     *
     * @param page
     * @param statisticalReportForms
     * @return
     */
    PageInfo<StatisticalReportForms> businessDetailsSee(Page page, StatisticalReportForms statisticalReportForms);
    /**
     * 小区业务明细查询  房间分组列表
     *
     * @param statisticalReportForms
     * @return
     */
    List<StatisticalReportForms> businessDetailsSeeCell( StatisticalReportForms statisticalReportForms);

    /**
     * 导出excel
     * exportExcelType：businessDetailsQuery ==》小区业务明细查询
     * exportExcelType：businessSummaryQuery ==》小区业务汇总查询
     *
     * @param statisticalReportForms 参数的实体
     */
    List<StatisticalReportForms> businessQueryExport(StatisticalReportForms statisticalReportForms);

    /**
     * 导出excel  小区欠费信息
     *
     * @param fuzzy
     * @return
     */
    List<StatisticalReportForms> arrearsInquiriesExport(StatisticalReportForms statisticalReportForms);

    /**
     * 小区交存业务查询  导出excel
     *
     * @param fuzzy
     * @return
     */
    List<StatisticalReportForms> depositBusinessQueryExport(StatisticalReportForms statisticalReportForms);

    /**
     * 银行交易汇总查询 导出excel
     *
     * @param statisticalReportForms
     * @return
     */
    List<StatisticalReportForms> bankTransactionSummaryQueryExport(StatisticalReportForms statisticalReportForms);

    /**
     * 综合查询--房屋
     *
     * @param buildId
     * @return
     */
    PageInfo<StatisticalReportForms> wholeCityComprehensiveQueryHouse(Page page, String buildId, String fuzzy);
    /**
     * 综合查询--房屋
     *
     * @return
     */
    List<StatisticalReportForms> wholeCityComprehensiveQueryHouseCell(StatisticalReportForms statisticalReportForms);

    /**
     * 查询本年的年初到年磨
     * @param type
     * @return
     */
    StatisticalReportForms selectStartAndEnd(String type);
    /**
     * 交易明细查询
     * @param page
     * @return
     */
    PageInfo<StatisticalReportForms> selectBank(Page page, StatisticalReportForms statisticalReportForms);
    /**
     * 交易明细查询
     * @return
     */
    List<StatisticalReportForms> selectBank(StatisticalReportForms statisticalReportForms);

    /**
     * 交易明细查询--明细
     * @param page
     * @param statisticalReportForms
     * @return
     */
    PageInfo<StatisticalReportForms> selectBankDefinite(Page page,StatisticalReportForms statisticalReportForms);
    List<StatisticalReportForms>  selectBankDefiniteCell(StatisticalReportForms statisticalReportForms);

    /**
     * 年
     * @return
     */
    List<Integer> selectAllYear();
    /**
     * 总帐汇总
     * @return
     */
    List<StatisticalReportForms> wholebankTransaction(String type);

    /**
     * 资金缴存统计
     * @return
     */
    List<RegionBank> selectdepAll(String startTime, String endTime);

    /**
     * 资金使用
     * @param startTime
     * @param endTime
     * @return
     */
    List<ExpPayReq> selectexpAll(String startTime, String endTime);

    /**
     * 银行明细入账
     * @param type
     * @return
     */
    List<RegionBank> selectbankLinkAll(String type);

    /**
     * 维修资金统计报表打印
     * @param date
     * @return
     */
    RegionBank wholeMoneyOutAndIn(String date);

    /**
     * 综合查询小区 报表
     * @return
     */
    List<StatisticalReportForms> wholeCityComprehensiveQueryRegionCell(StatisticalReportForms statisticalReportForms);



    List<StatisticalReportForms> selectBankCell(StatisticalReportForms statisticalReportForms);

    List<RegionBank> selectdepAllCell(String startTime, String endTime);
}
